Better handling of window hierarchy changes from inside expose handler
authorAlexander Larsson <alexl@redhat.com>
Mon, 14 Sep 2009 11:44:09 +0000 (13:44 +0200)
committerAlexander Larsson <alexl@redhat.com>
Mon, 14 Sep 2009 11:52:40 +0000 (13:52 +0200)
commitf473242e19c14d159cf8386b3331b930ca4bdd5b
treefa591fda55eb8bacd81bf2ad2b76e239406be167
parent6d84fcab760f1aa96eb147ceb749d02dc090ce67
Better handling of window hierarchy changes from inside expose handler

If we move, resize or otherwise change a window from inside a (double
buffered)  expose handler we can run into issues with double buffered
paints that have already been ended but have not yet been commited
to the window from the implicit paint pixmap.

For instance, any copies of source regions due to a window scroll need
to take these into account, and any operation that causes some drawing at
a destination covered by the implicit paint region would be overdrawn
when the implicit paint is ended.

So, before we do any window-hierarchy changing operation while an implicit
paint is in effect we flush all moves and already commited paints.
gdk/gdkwindow.c